LinuC-1 - 101試験 - 1.05:ハードウェア、ディスク、パーティション、ファイルシステム - 1.05.3 ファイルシステムの作成と管理、マウント

Last Update : August 21 2022 17:47:20

     

a. マウントの仕組み

Linuxでは、Windowsとは違い、ハード・ディスクやUSBメモリー、光学ドライブといったストレージ・デバイスを接続しただけで、ファイルを読み書きできるようにはなりません。それらのデバイス上のパーティションは必ず "/(ルート)" 以下のディレクトリのどこかにファイルシステムの一部として認識されている必要があります。Linuxシステムに認識させ、利用できるようにする作業を「マウント」と呼びます。

"/etc/fstab" に記述されている場合はLinuxOSの起動時に自動的にマウントされますが、そうではないパーティションなどについてはmountコマンドを使って手動でマウントする必要があります。

Linuxでは、複数のパーティションも1つのツリー構造にまとめて扱います。ストレージ・デバイスを接続したときは、そのデバイスにあるパーティションを、このツリー構造のどこかにディレクトリとして登録します。この作業がマウントです。登録するディレクトリのことを「マウント・ポイント」と呼びます。逆に、ツリー構造から切り離す作業を「アンマウント」と呼びます。


b. /etc/fstabファイル

1./etc/fstab の編集

ファイルシステムをマウントする場合、mount コマンドにて、その都度、マウントオプションを指定しますが、これを省略する場合、/etc/fstab ファイルにマウントするファイルシステムを記述しておく事で、マウントオプションを省略する事ができます。fstab の書式は以下のようになります。

書式:[デバイス] - [マウントポイント] - [ファイルシステム] - [マウントオプション] - [dumpオプション] - [fsckオプション]

左から順に、

  1. マウントするデバイスファイル名/ラベル
  2. マウントポイント
    ファイルシステムのマウント先となるディレクトリを指定します。
  3. マウントするファイルシステムタイプ
  4. マウントオプション
    ちなみに、defaultsのオプションに含まれるのは、 async / auto / dev / exec /nouser / rw / suid …となる ここでuserを指定すると、一般ユーザーでもマウントが可能に、usersを 指定するとマウントしたユーザー以外のユーザーでもアンマウントが可能になる。 カンマで区切って複数のマウントオプションを指定することも可能。
  5. dumpフラグ
    「1」がdumpコマンドによるバックアップ対象となり、「0」だと対象外となる。
    ext2・ext3・ext4ファイルシステムの場合は、通常「1」
  6. fsckフラグ
    ブート時にfsckがチェックする順番。 「1.2..」の順にチェックされ、「0」はチェックされない。 ルートファイルシステムは必ず「1」。
# vi /etc/fstab
/dev/cdrom    /mnt/cdrom    iso9660    noauto,owner,kudzu,ro 0 0

一番左の /dev/cdrom はマウントするデバイスファイル名、/mnt/cdrom はマウントポイント、iso9660がはマウントするデバイスのファイルシステムタイプ、noauto,owner,kudzu,ro がマウントオプションで複数ある場合は、カンマ「,」で区切って記述します。右から2番目の0 は、dump コマンドによるバックアップをするかしないかの指定で、1を指定するとバックアップを行い、0が指定されているとバックアップは行いません。一番右の0 は、fsck コマンドの実行順序を指定しています。0が指定されている場合は、fsck コマンドによる検査は行いません。

なお、マウント時に参照される/etc/mtab ファイルは、mount -a やumount -a コマンドによって自動的に書き換え処理が行われ、通常、手動でこのファイルを編集する事はほとんどありません。



c. デバイスのマウント・アンマウント

ファイルシステムを使えるようにするには、ルートファイルシステムの一部へマウントする必要があります。そのマウントするためのディレクトリをマウントポイントと呼びます。
ファイルシステムのマウントやアンマウントを実行するコマンドが、mountコマンドやunmountコマンドです。
mountコマンドを引数なしで実行すると、現在マウントされているデバイスの一覧が表示されます。

$ mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

● mount コマンド構文
  mount [オプション] [デバイス] [ディレクトリ]

● mount コマンドオプション
 -a /etc/fstab に記述されている全てのファイルシステムをマウントする
 -n mount 時に/etc/mtab に書き込まない
 -r 読み取り専用でマウントする
 -w 読み取り/書き込みが可能な状態でマウントする
 -v 詳細表示する
 -t type ファイルシステムのタイプを指定する
 -f /etc/mtab の情報を書き換えるだけで、実際にはマウントしない
 -o マウントオプション マウントオプションを指定する
-o remount 再マウント
-o noexec バイナリの実行を許可しない
-o nosuid SUID、SGIDを無視する
-o loop ループバックマウントする(イメージファイルのマウント)

● type (ファイルシステムタイプ)
 ext2 Linux で標準的に使用されるファイルシステム
 ext3 ext2にジャーナリング機能を追加したファイルシステム。ジャーナリングファイルシステムとは、ファイル更新履歴のパックアップを記録しておく機能をもったファイルシステムの事です。
 iso9660 CD-ROMで標準的に使用されるファイルシステム
 msdos MS-DOSのファイルシステム
 vfat Windowsファイルシステム
 nfs NFS(ネットワークファイルシステム)

●マウントオプション
 async ファイルシステムの入出力のすべてを非同期で実行する
 sync ファイルシステムの入出力のすべてを同期で実行する
 auto mount -a コマンド実行時にマウントする
 noauto mount -a コマンド実行時にマウントしない
 atime ファイルシステムへのアクセスごとにinodeのアクセス時刻を更新する
 notime inodeのアクセス時刻を更新しない(ディスクアクセスの高速化)
 dev ファイルシステム上のデバイスファイルを利用できる
 exec バイナリの実行を許可する
 noexec バイナリの実行を許可しない
 ro 読み取り専用でマウントする
 rw 読み書き可能でマウントする
 suid SUID と SGID を有効にする
 nosuid SUID と SGID を無効にする
 group ユーザーのグループがデバイスファイルの所有グループと一致すればにマウントを許可する
 user 一般ユーザーにマウントを許可する
 users 一般ユーザーにマウントを許可し、マウントを実行していないユーザーにもアウンマウントを許可する
 nouser 一般ユーザーのマウントを禁止する
 defaults async、auto、dev、exec、nouser、rw、suid の各オプションを適用してマウントする
 unhide 隠しファイルも表示する
 usrquota ユーザクォータを有効にする
 grpquota グループクォータを有効にする
 noquota クォータを使用しない
 owner デバイスファイルの所有者によるマウントを許可する
コンソールにログインしたユーザーが端末デバイスの所有者となり、マウントを実行できる

● umount コマンド構文
  umount [オプション] [デバイス・ディレクトリ]

● umount コマンドオプション
 -a /etc/fstab に記述されている全てのファイルシステムをアンマウントする
 -n umount 時に/etc/mtab に書き込まない
 -r アンマウント失敗時に、読み取り専用で再マウントする
 -v 詳細表示する
 -t type ファイルシステムのタイプを指定する


1.CD-ROMのマウント

CD-ROMをマウントするには、mount コマンドを使用します。以下コマンドを入力するとCD-ROMが回り始めるはずです。マウントとは、わかりやすく言えば、デバイス上のファイルシステムをディレクトリのひとつとして使用することです。

$ mount /dev/cdrom

しかし、上記のmountコマンドは、/etc/fstabファイル内にCD-ROMデバイスに関する記述がある場合です。
/etc/fstabファイルに記述がない場合は以下のように入力します。

# mount -t iso9660 /dev/sr0 /mnt/cdrom

cd-romが/dev/sr0として認識され、cd-romのファイルタイプをiso9660として、/mnt/cd-romにマウントする場合です。


2.フロッピーディスクのマウント

$ mount /dev/fd0
$ cd /mnt/floppy

3.CD-ROMのアンマウント

CD-ROMをアンマウントするには、umount コマンドを使用します。

$ umount /dev/cdrom


4.フロッピーディスクのアンマウント

$ umount /mnt/floppy


5.USBメモリのマウント

USBメモリをマウントするには、上記ふたつのように簡単にはいきません。USBメモリは、SCSIデバイスとして認識するため、/dev/sda のように指定します。また、ファイルシステムタイプは、vfat (Windows 95やNTなどが採用しているファイルシステム)にします。なお、-r オプションを使用すると、読み込みオンリーでマウントされます。

# mkdir /mnt/usb
# mount -rt vfat /dev/sda /mnt/usb

ただし、この状態でディレクトリ内を閲覧しても、日本語のファイル名は、「???.txt」のように表示されてしまいます。これではちょっと不便なので、オプションとして iocharset=euc-jp codepage=932 を追記してマウントを実行するときちんと日本語ファイル名が表示されるようになります。これは、Windows のDOSファイルシステムをマウントする時も同様です。

# cd /mnt/usb
# ls

12345.txt ?????? SCSI?????.txt

# cd ; umount /mnt/usb
# mount -t vfat /dev/sda /mnt/usb -o iocharset=euc-jp codepage=932
# cd /mnt/usb ; ls

12345.txt identity SCSIの作成ログ.txt

なお、USBメモリをマウントするときにこれらのオプションを省略する場合は、/etc/fstabに記述しておくと、簡単にマウントできるようになります。/etc/fstab の最後の行に以下のような行を追記します。

# vi /etc/fstab
/dev/sda /mnt/usb vfat defaults,codepage=932,iocharset=euc-jp 0 0

これで、mount /mnt/usb と指定するだけで、ファイル名が日本語で表示されるようになります。

# mount /mnt/usb


6.umount のトラブルシューティング

umount コマンド実行時に、「umount: /mnt/cdrom: デバイスを使用中です」と言われることがあります。これは、カレントディレクトリがCD-ROM内のディレクトリの場合です。カレントディレクトリがCD-ROM内である場合には、アンマウントできません。一旦、cd コマンドで、ホームディレクトリなどのCD-ROM内以外のディレクトリに移動してから、umount を実行します。

$ cd
$ umount /dev/cdrom

また、他のユーザーによってCD-ROMがマウントされていたり、複数のターミナルを起動してマウントしている場合なども同様にアンマウントできません。その場合は、fuser コマンドを使用して、CD-ROM が使用するプロセスを確認した上で、kill します。但し、ユーザーのプロセスを終了させるときには、必ず事前に警告するようにします。

# fuser -mv /mnt/cdrom

USER PID ACCESS COMMAND
/mnt/cdrom/ sakura 10245 ..c.. bash

# kill -9 10245 もしくは、fuser -k /mnt/cdrom
# umount /mnt/cdrom



z. 出題範囲概要

概要 :
  • 各種ファイルシステムの特徴を理解している。
  • ファイルシステムを作成できる。スワップスペースも含む。
  • ファイルシステムをマウントするための設定ができる。

詳細 :
  • MBRパーティションテーブルの管理。
  • 各種のmkfsコマンドを使用して、以下のようなさまざまなファイルシステムを作成または管理する。
    ext3/ext4, XFS, VFAT, Btrfs, tmpfs
  • スワップスペースを作成する。
    mkswap, swapon, swapoff
  • ファイルシステムを手作業でマウントおよびアンマウントする。
    mount, umount, マウントポイント
  • ブート時にファイルシステムをマウントするよう設定する。
    /etc/fstab
  • UUIDとラベルを使ってファイルシステムの識別とマウントができる。
  • リムーバブルなファイルシステムをユーザがマウントできるように設定する。
    /media

  [ 例題 ] 


         

    www.it-shikaku.jp